[アップデート] Amazon DynamoDB Global Tableがマルチリージョンの強い整合性をサポートしました (プレビュー) #AWSreinvent

[アップデート] Amazon DynamoDB Global Tableがマルチリージョンの強い整合性をサポートしました (プレビュー) #AWSreinvent

Clock Icon2024.12.04

マルチリージョンでも強い整合性を持たせたいな

こんにちは、のんピ(@non____97)です。

皆さんはマルチリージョンでも強い整合性を持たせたいなと思ったことはありますか? 私はあります。

マルチリージョンでデータをレプリケーションするようなDBでは結果整合性となっている場合が多いです。そのため、タイミングによっては古いデータを参照してしまうことがあります。

アプリケーションによってはそのような事象は許容できないことがあります。

今回、Amazon DynamoDB Global Tableは、マルチリージョンの強い整合性をサポート(プレビュー)するようになりました。

IMG_5696-4.jpg

https://aws.amazon.com/about-aws/whats-new/2024/12/amazon-dynamodb-global-tables-previews-multi-region-strong-consistency

これにより、よりトランザクションがシビアなシステムであっても、RPOがゼロの可用性の高いマルチリージョンアプリケーションを構築することが可能になります。

対応リージョン

2024/12/3時点の対応リージョンは以下の3つです。

  • バージニア北部
  • オハイオ
  • オレゴン

お値段

気になるお値段ですが、通常のDynamoDB Global Tableと同じでした。

https://aws.amazon.com/dynamodb/pricing/

ただし、強力な整合性の読み取りをする場合、4KBのサイズまでのアイテムだと1秒あたり1読み取り要求に対して1RCUを消費します。4KBを超えるアイテムには追加のRCUが必要です。要するに結果整合性読み取りと比べて2倍のコストがかかります。

これは通常のリージョナルなDynamoDBテーブルと同じですね。

https://dev.classmethod.jp/articles/pricing_dynamodb-strongly-consistent-read/

試してみた

実際に試してみます。

既存のDynamoDBテーブルをGlobal Tableとしようとしてみます。

オプションを見ると強固な一貫性が追加されていますね。どうやら複数リージョンにレプリカを作成するようです。また、プレビューであるため本番環境で使わないように念押しされています。

1.強固な一貫性.png

すると、Regional table cannot contain data when creating a global table with MultiRegionConsistency set to STRONGとエラーになりました。

アイテムがある状態では強い整合性のGlobal Tableの設定はできないようです。

2.Regional table cannot contain data when creating a global table with MultiRegionConsistency set to STRONG..png

新しく用意したまっさらなDynamoDBテーブルの場合は正常に設定できました。

3.us-east-2 および us-west-2 リージョンに non-97-test テーブルをレプリケートしています。特に大きなテーブルの場合、これには時間がかかる場合があります。 .png

少しすると、レプリカ作成のステータスを確認できました。

4.レプリカ作成中.png

その後数分でアクティブになりました。

5.数分でアクティブに.png

結果整合性のGlobal Tableと同じく、DyanamoDB Streamsが有効になっています。DyanamoDB Streamsを用いてレプリケーションすることは同じのようです。

6.DynamoDB Streamsが有効になっていることを確認.png

レプリカであるオレゴンからみたDynamoDBテーブルは以下のとおりです。

7.オレゴンから見たDynamoDBテーブル.png

試しにレプリカを削除しようとしてみます。

8.us-east-2 および us-east-1 レプリカを削除しますか?.png

はい、Replica cannot be deleted because it has acted as a source region for new replica(s) being added to the table in the last 24 hours.と24時間経過していないため削除できないとエラーになりました。

9.Replica cannot be deleted because it has acted as a source region for new replica(s) being added to the table in the last 24 hours..png

シビアなシステムをマルチリージョンで展開する場合に

プレビューですが、Amazon DynamoDB Global Tableは、マルチリージョンの強い整合性をサポートするようになったアップデートを紹介しました。

シビアなシステムをマルチリージョンで展開する場合は選択肢に必ず入ってくるでしょう。

この記事が誰かの助けになれば幸いです。

以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.